mokkabonna / inquirer-autocomplete-prompt

Autocomplete prompt for inquirer
ISC License
350 stars 82 forks source link

TypeError: thisPromise.then is not a function #56

Closed yuta0801 closed 6 years ago

yuta0801 commented 6 years ago

Code

const inquirer = require('inquirer')
const autocomplete = require('inquirer-autocomplete-prompt')

const array = ['red', 'green', 'blue', 'yellow']

inquirer.registerPrompt('autocomplete', autocomplete)
inquirer.prompt({
  type: 'autocomplete',
  name: 'server',
  message: 'Select a server to sync mods with',
  source: (answersSoFar, input) => {
    return array.filter(e => e.startsWith(input))
  },
})

process.on('unhandledRejection', err => console.log(err))

Error

TypeError: thisPromise.then is not a function
    at Prompt.search (D:\Yuta\Desktop\node_modules\inquirer-autocomplete-prompt\index.js:186:22)
    at Prompt._run (D:\Yuta\Desktop\node_modules\inquirer-autocomplete-prompt\index.js:71:8)
    at Prompt.<anonymous> (D:\Yuta\Desktop\node_modules\inquirer-autocomplete-prompt\node_modules\inquirer\lib\prompts\base.js:56:10)
    at new Promise (<anonymous>)
    at Prompt.run (D:\Yuta\Desktop\node_modules\inquirer-autocomplete-prompt\node_modules\inquirer\lib\prompts\base.js:55:10)
    at DeferSubscriber.Rx.Observable.defer [as factory] (D:\Yuta\Desktop\node_modules\inquirer\lib\ui\prompt.js:84:27)
    at DeferSubscriber._callFactory (D:\Yuta\Desktop\node_modules\rxjs\observable\DeferObservable.js:92:27)
    at DeferSubscriber.tryDefer (D:\Yuta\Desktop\node_modules\rxjs\observable\DeferObservable.js:85:18)
    at new DeferSubscriber (D:\Yuta\Desktop\node_modules\rxjs\observable\DeferObservable.js:81:14)
    at DeferObservable._subscribe (D:\Yuta\Desktop\node_modules\rxjs\observable\DeferObservable.js:71:16)
yuta0801 commented 6 years ago

I try to return a promise, it's running.

  const inquirer = require('inquirer')
  const autocomplete = require('inquirer-autocomplete-prompt')

  const array = ['red', 'green', 'blue', 'yellow']

  inquirer.registerPrompt('autocomplete', autocomplete)
  inquirer.prompt({
    type: 'autocomplete',
    name: 'server',
    message: 'Select a server to sync mods with',
//  source: (answersSoFar, input) => {
    source: async (answersSoFar, input) => {
      console.log(answersSoFar, input)
      return array.filter(e => e.startsWith(input))
    },
  })

  process.on('unhandledRejection', err => console.log(err))