链功能承诺

时间:2019-03-01 14:59:46

标签: javascript promise chaining

我有一个功能

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())

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

1 个答案:

答案 0 :(得分:1)

由于func不返回承诺,因此会导致此错误。如果这是一个承诺:

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

您需要在func内将其返回:

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

然后您可以像这样安全地使用它:

func().then(response => promise());
相关问题