사용자가 다른 행의 데이터베이스에 삽입해야하는 데이터 배열을 게시하는 동적 인 경우가 있습니다. 성공 또는 실패를 사용자에게 반환하기 전에 통화가 완료 될 때까지 기다리는 방법.사용자에게 반환하기 전에 콜백 대기 완료
나는 약속을 사용하여 시도하지만 내가 넣어 측면을 약속하지만, 생각 약속
req.targetting.forEach(data => {
let s = {};
if (data.value == '' || data.value.length == 0) {
s = 99;
} else {
s = data.status;
}
let promises = new Promise((resolve, reject) => {
XXX.upsertWithWhere(where clause,data, (err, data) => { // a loopback method
if (err) {
return reject(err);
}
return resolve(data);
});
});
Promise.all(promises).then((err, data) => {
if (err) {
return callback(err);
}
callback(null, data);
});
});
};
이
UnhandledPromiseRejectionWarning: Unhandled promise rejection (rejection id: 2): TypeError: Cannot read property 'Symbol(Symbol.iterator)' of undefined (node:6216) DeprecationWarning: Unhandled promise rejections are deprecated. In the future, promise rejections that are not handled will terminate the Node.js process with a non-zero exit code.
내 산책로를 반환 거부 ID로 여전히 같은 오류 3
upsert 메서드의 서명
PersistedModel.upsertWithWhere([where], data, callback)
Promise.all()은 반복 가능한 객체를 사용합니다. 단일 약속 만 전달하는 것 같습니다. 또한 promise.all() 블록에서 callback() 함수를 반환합니다. 함수가 선언 된 위치는 어디입니까? 그것은'논쟁'에 있지 않다. –
@KumarShubham 실수가 있습니다. 내가 원하는 것은 콜백이 완료되었을 때만 모든 약속을 얻고 돌아 오는 것입니다. – INFOSYS
반복 불가능한 거부는 Promise.all에 반복 가능한 객체 대신 약속을 전달하기 때문에 발생합니다() 메소드를 호출합니다. –