连锁承诺运作

问题描述 投票:0回答:1

我有一个功能

const func = () => server.insertPatientSurveyQuestionToDataBase(Store.getPatientID(), SurveyNumber, Store.getPatientQuestion())

被称为。

在此之后,有一个功能:

const promise = 
  server.GetPatientHistoryData(Store.getPatientID())
    .then(
      response => Dispatcher.dispatch({
        actionType: Constants.CHANGE_PATIENT_HISTORY,
        payload:response}))

    .catch(error => {console.log(error)});

我这样做,我认为应该工作:

func().then(response => promise())

但它返回一个无法读取属性然后未定义。我觉得这可行。如何将函数链接到承诺?

javascript promise chaining
1个回答
1
投票

它会导致此错误,因为func不会返回承诺。如果这部分是承诺:

server.insertPatientSurveyQuestionToDataBase(Store.getPatientID(), SurveyNumber, Store.getPatientQuestion());

你需要在func中返回它:

const func = () => {
    return server.insertPatientSurveyQuestionToDataBase(Store.getPatientID(), SurveyNumber, Store.getPatientQuestion());
};

然后你可以安全地使用它:

func().then(response => promise());
© www.soinside.com 2019 - 2024. All rights reserved.