【发布时间】:2019-03-02 00:08:30
【问题描述】:
我有两个承诺
const promise_1 = this.connection.insertPatientToDataBase(Store.getPotentialPatientID())
.then(ting => {
console.log(ting);
Dispatcher.dispatch({
actionType: Constants.CHANGE_POTENTIAL_PATIENT_PASSWORD,
payload: ting.data.password
})})
.catch(error => {console.log(error)});
const promise_2 = this.connection.getAllPatientData()
.then( function(response) {
console.log("Dispatrinc a new server call")
console.log(response.data)
Dispatcher.dispatch({
actionType: Constants.CHANGE_ALL_PATIENTS,
payload: response.data
})})
.catch(error => console.log(error))
console.log("Done");
}
第一个将一些数据发布到服务器,第二个查询数据重新下载 新列表。第二个依赖于第一个。问题是第一个承诺是在之后实现的。第二个应许首先实现。 我怎样才能将这两个承诺链接在一起 所以promise 2 等待promise 1?
【问题讨论】:
-
在 insertPatientToDataBase 函数中调用 this.connection.getAllPatientData() 函数,这就是我们链接 http 调用的方式
-
promise_1.then( promise_1_result => promise_2()).then( promise_2_result => { ... })根据 promise_2 是否需要 promise_1 的结果,您可能希望将 p1 结果用作 p2 或其他东西的参数和/或将它们包装在另一个函数中。 -
你不能链接一个promise,但是你可以链接一个创建promise的函数。
标签: javascript promise axios