0
declare var Promise: any;
function all(promises : Array<Promise<any>>) : Promise<Array<any>> {
return new Promise((resolve, reject) => {
if(promises.length===0){
resolve([]);
}
else{
promises[0].then((result)=>{
all(promises.slice(1)).then(rest=>{resolve([result].concat(rest))}).catch((err)=>{reject(err)})
}).catch((err)=>{reject(err)});
}
});
}
//Test
function p1() { // always succeeds, with content 1
return new Promise((resolve, reject) => {
setTimeout(() => { resolve(1); }, Math.random() * 1000);
});
}
function p3() { // always fails, with err 3
return new Promise((resolve, reject) => {
setTimeout(() => { reject(3); }, Math.random() * 1000);
});
}
all([p1(),p3()])
.then(content => { console.log("Test 2 Failed: ", content); })
.catch(err => {
if (err === 3) console.log("Test 2 Succeeded: ", err);
else console.log("Test 2 Failed: ", err);
}
);
(12624ノード)を取得しています:3(node:12624)DeprecationWarning:未処理の約束拒否は廃止されました。将来的には、非ゼロの終了コードでNode.jsの処理を終了する処理されない拒絶を約束。テスト2は成功しました:3(ノード:12624)PromiseRejectionHandledWarningを:約束拒否が非同期に処理された(拒否ID:1)
だから、私はそれを解決するために助けてください!
こんにちは。これは答えよりもコメントです。 「回答」オプションは、質問の解決に貢献したい場合にのみ使用してください。 – matheburg
大丈夫、申し訳ありません..しかし、リンクは多分問題をダウングレードしてwバージョンを解決します。 –