функция выполнения обещания, возвращающая неопределенное - PullRequest
0 голосов
/ 02 октября 2019

Я пытаюсь вернуть значение внутри обещания, когда обещание разрешается, а затем передать возвращенное значение моему состоянию. Однако, возвращаемое значение моей функции, независимо от того, что я пытаюсь ..., не определено.

Моя функция импортирована из пакета npm, документация которого находится здесь: https://www.npmjs.com/package/synonyms

этопредназначен для возврата синонима данного слова.

Может быть, есть какая-то действительно очевидная проблема с тем, как я структурировал само обещание, которое вызывает неправильную синхронизацию асинхронности?

Я пытался вернуть толькофункция не передает его для разрешения, но это выдает ошибку

searchForSynonymsAndDef = (param) =>{
if(this.state.scholarMode==true){
console.log("INSIDE SYNONYMS")

var synonyms = require("synonyms");

  let p = new Promise((resolve,reject,param)=>{
    var result=resolve(synonyms(param,"n"))

  }).then((result)=>{
    console.log("result is:",result)
  })
  .then((result)=>{
    this.setState({textToReadAloud: "here are some synonyms for "
    +param +"...firstly.....nouns...."+result})
    console.log("here are some synonyms for "+param +"...firstly.....nouns...."+result)
    })
  }else{
    console.log("sorry scholar mode is off")
  }
}

Я ожидаю, что «result» будет синонимом, основанным на переданном параметре, но, к сожалению, результат всегда = undefined: (

Ответы [ 2 ]

0 голосов
/ 02 октября 2019

Вам не нужно передавать param для обещания. Просто удалите param из Promise, и он должен работать.

searchForSynonymsAndDef = (param) =>{
if(this.state.scholarMode==true){
console.log("INSIDE SYNONYMS")

var synonyms = require("synonyms");

  let p = new Promise((resolve,reject)=>{
    var result=resolve(synonyms(param,"n"))

  }).then((result)=>{
    console.log("result is:",result)
  })
  .then((result)=>{
    this.setState({textToReadAloud: "here are some synonyms for "
    +param +"...firstly.....nouns...."+result})
    console.log("here are some synonyms for "+param +"...firstly.....nouns...."+result)
    })
  }else{
    console.log("sorry scholar mode is off")
  }
}
0 голосов
/ 02 октября 2019
searchForSynonymsAndDef = (param) =>{
    if(this.state.scholarMode==true){
    console.log("INSIDE SYNONYMS")

    var synonyms = require("synonyms");
    let p = new Promise((resolve,reject,param)=>{
        resolve(synonyms(param,"n"));
    });
    return p;
}else{
    console.log("sorry scholar mode is off")
}
}
...