24.1 概览

下面的函数通过 Promise 异步地返回结果:

function asyncFunc() {
    return new Promise(
        function (resolve, reject) {
            resolve(value); // success
            ···
            reject(error); // failure
        });
}

像下面这样调用 asyncFunc()

asyncFunc()
.then(value => { /* success */ })
.catch(error => { /* failure */ });

24.1.1 处理 Promise 数组

Promise.all() 使你能够应对 Promise 数组。

例如,可以通过 Array 的方法 map() 创建一个 Promise 数组:

let fileUrls = [
    'http://example.com/file1.txt',
    'http://example.com/file2.txt'
];
let promisedTexts = fileUrls.map(httpGet); // Array of Promises

如果对这个数组调用 Promise.all() ,那么在所有 Promise 成功完成之后,会得到一个值数组:

Promise.all(promisedTexts)
// Success
.then(texts => {
    for (let text of texts) {
        console.log(text);
    }
})
// Failure
.catch(reason => {
    // Receives first rejection among `promisedTexts`
});

results matching ""

    No results matching ""