Is S3 deleteObjects API synchronous?

I am developing one solution to delete multiple files from S3 at once. While doing so I encountered a S3 api that deleted multiple objects at the same time.

I have used promises to handle this operation as S3 returns callback.

    return new Promise((resolve, reject) => {
        s3.deleteObjects({
            Bucket: 'my-bucket',
            Delete: {
                Objects: keys
            }
        }, (err, data) => {
            if (err)
                return reject(err)
            console.log(data)
            return resolve(data)
        });
    });
}

This API returns all keys that have been deleted. However, when I went through some of the stack-overflow questions, it appears that this API might take some time to delete files physically.
But this is not the case every time. Somtimes it takes several milliseconds, minutes or hours.
Is this expected behavior of the API? If not is it synhronous or asynchronous.
PS: By sync/ async I mean file deletion operation and not the response of the API.