Javascript 执行回调函数后解析承诺

Javascript 执行回调函数后解析承诺,javascript,Javascript,我有这样一个功能来重置文本输入: function inputReset(){ const textarea = $("textarea").first(); textarea.fadeOut(2000, "swing", textareaAnimeEnded); function textareaAnimeEnded(){ // I'll do some stuff here and after 500 ms

我有这样一个功能来重置文本输入:

function inputReset(){

    const textarea = $("textarea").first();
    textarea.fadeOut(2000, "swing", textareaAnimeEnded);

    function textareaAnimeEnded(){ 
        // I'll do some stuff here and after 500 ms I should resolve the inputReset function
        return new Promise(resolve => setTimeout(() => resolve(), 500));
    }
}
我想在另一个类似这样的函数中使用
inputReset

async function foo() {

 await inputReset();

}

执行
textareaAnimeEnded
函数500 ms后,如何解析承诺?

您可以简单地使用setTimeout(),而不必使用承诺

function foo() {
   setTimeout(() => {
      textareaAnimeEnded();
   }, 500)
}

您可以简单地使用setTimeout(),而不必使用承诺

function foo() {
   setTimeout(() => {
      textareaAnimeEnded();
   }, 500)
}
提高承诺:

function inputReset() {
  return new Promise(resolve => {
    const textarea = $("textarea").first();
    textarea.fadeOut(2000, "swing", textareaAnimeEnded);

    function textareaAnimeEnded() {
      // I'll do some stuff here and after 500 ms I should resolve the inputReset function
      setTimeout(resolve, 500);
    }
  })
}
提高承诺:

function inputReset() {
  return new Promise(resolve => {
    const textarea = $("textarea").first();
    textarea.fadeOut(2000, "swing", textareaAnimeEnded);

    function textareaAnimeEnded() {
      // I'll do some stuff here and after 500 ms I should resolve the inputReset function
      setTimeout(resolve, 500);
    }
  })
}
  • 您需要使用
    inputReset
    函数返回
    Promise
    类型
  • 并在调用
    textAreaAnimeEnded
    函数后解决
    inputReset
    的承诺
  • 我已附上工作示例

    函数输入集(){
    返回新承诺((解决)=>{
    常量textarea=$(“textarea”).first();
    textarea.fadeOut(2000,“swing”,async()=>{
    console.log('Here');
    等待文本区域动画显示();
    返回resolve();
    });
    });
    }
    函数textareaAnimeEnded(){
    //我会在这里做一些事情,500毫秒后,我应该解析inputReset函数
    返回新承诺(resolve=>setTimeout(()=>resolve(),500));
    }
    异步函数foo(){
    等待输入设置();
    log('Hello');
    }
    textarea{
    宽度:300px;
    高度:300px;
    }
    asdfasdfasdfasdfasdf
    福
    
  • 您需要使用
    inputReset
    函数返回
    Promise
    类型
  • 并在调用
    textAreaAnimeEnded
    函数后解决
    inputReset
    的承诺
  • 我已附上工作示例

    函数输入集(){
    返回新承诺((解决)=>{
    常量textarea=$(“textarea”).first();
    textarea.fadeOut(2000,“swing”,async()=>{
    console.log('Here');
    等待文本区域动画显示();
    返回resolve();
    });
    });
    }
    函数textareaAnimeEnded(){
    //我会在这里做一些事情,500毫秒后,我应该解析inputReset函数
    返回新承诺(resolve=>setTimeout(()=>resolve(),500));
    }
    异步函数foo(){
    等待输入设置();
    log('Hello');
    }
    textarea{
    宽度:300px;
    高度:300px;
    }
    asdfasdfasdfasdfasdf
    福
    
    “执行
    textareaAnimeEnded
    函数500毫秒后,我如何解决承诺?”如果执行该函数,就会出现这种情况。如果它不起作用,您需要进一步解释。“在执行
    textareaAnimeEnded
    函数500毫秒后,我如何解决承诺?”如果您执行该函数,就会出现这种情况。如果它不起作用,你需要解释更多。