Согласно API Wrike.com, вам не нужно делать это, чтобы найти идентификатор папки root. https://developers.wrike.com/documentation/api/methods/get-folder
[GET] /folders/{folderId}
возвращает свойство parentIds
, которое представляет собой массив идентификаторов родительских папок.
У меня нет учетной записи, но я Я вполне уверен, что первым или последним в этом массиве (в зависимости от порядка) является идентификатор папки ROOT, который вы не хотите найти.
Редактировать
Я не совсем уверен, что вы пытаетесь сделать, но тем временем есть несколько существенных ошибок, которые нужно исправить в вашем коде:
Во-первых, вот верный способ вернуть цепочечное обещание
function next(initId) {
let promise = new Promise(function(resolve, reject) {
requestHttp('GET','https://www.wrike.com/api/v4/folders/' + initId)
.then(function(response) {
if(/*condition to resolve promise*/) {
resolve(/*with something*/);
}
else {
reject(/*with an error*/);
// or return another Promise
}
})
.catch(error => reject(error));
});
return promise;
}
Затем метод next
принимает параметр с именем initId
, поэтому другой разработчик (например, мы) не считает, что это массив идентификаторов.
Я имею в виду, это довольно запутанно , Это работает, потому что свойство parentIds
является массивом и .toString()
этого массива возвращает id1,id2,...
Wrike API поддерживает его, но вы должны использовать ids.join(',')
вместо.