【发布时间】:2018-02-19 04:37:06
【问题描述】:
我正试图在一个承诺运行一个函数后返回一个值,一旦所有承诺都完成,如下面的代码。
var promises = [];
var userInfo = null;
export function userRunner(userData) {
userData.forEach(function (obj) {
let x = fetch(apiURL1)
.then(function (data) {
return data.json()
})
promises.push(x);
let y = fetch(apiURL2)
.then(function (data) {
return data.json()
})
promises.push(y);
});
Promise
.all(promises)
.then(function (results) {
return plotChart(results); //How do I return this only when it's done below?
}).catch(function (error) {
console.log(error);
});
}
function plotChart(obj){
//do some work with userInfo and return userInfo
return userInfo;
}
基本上,一旦所有 fetch 完成,Promise.all 运行它就会调用返回值的 plotGraph 函数。仅当plotGraph 完成时如何返回此值?
我像这样使用es6从另一个js页面调用这个函数
import {
userRunner
} from './graph'
任何帮助将不胜感激。
【问题讨论】:
-
你想返回什么价值?
-
嘿@Nit 基本上是“userInfo”到另一个正在导入“userRunner”的页面
标签: javascript ecmascript-6 es6-promise